package com.jiuwan.gamepass.pojo.model;

import lombok.Data;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.Collection;

/**
 * @version 1.0
 * 功能目的描述 ：用于  实现UserDetails 重写 ，该方法中包含 name password 权限集  是否过期等信息
 *  *                  我们需要自己用set方法将username password 等信息加入到UserDetails中，其他的类可以通过调用
 *  *                     get方法得到需要的信息
 *  *                     由于过期、锁定等参数在数据库中没有对应参数，直接返回TRUE========>>>>>>>>>>>
 * @author： pang-yun
 * @date： 2021-06-25 13:28
 */
@Data
public class MyUserDetails implements UserDetails {
    String password;  //密码
    String username;  //用户名
    boolean accountNonExpired; //是否没有过期
    boolean accountNonLocked;   //是否没被锁定
    boolean credentialsNonExpired;  //密码是否过期
    boolean enabled;    //账号是否可用
    Collection<? extends GrantedAuthority> authorities; //用户的权限集合

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        return authorities;
    }

    @Override
    public String getPassword() {
        return password;
    }

    @Override
    public String getUsername() {
        return username;
    }

    @Override
    public boolean isAccountNonExpired() {
        return true;
    }

    @Override
    public boolean isAccountNonLocked() {
        return true;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        return true;
    }

    @Override
    public boolean isEnabled() {
        return enabled;
    }
}
